import {EventManager} from "db://assets/scripts/common/EventManager";
import {EventType} from "db://assets/scripts/common/EventType";
import {GameManager} from "db://assets/scripts/game/GameManager";

/**
 * 游戏传送门代理
 */
export class GameWarpGateProxy {
    /**
     * 本层加载的npc、大爱心现存数量（怪物不会和npc、大爱心同时出现，配置表格需注意）
     */
    private existentNum: number = 0;

    /**
     * 代理对象
     */
    private proxy: GameManager;

    constructor(proxy: GameManager) {
        this.proxy = proxy;
    }

    /**
     * 判断本层的爱心、npc是否都已经触发
     */
    public checkTriggerAll() {
        // 每触发一次物品或NPC，现存数量-1
        this.existentNum -= 1;

        // 当现存数量少于0时
        if (this.existentNum <= 0) {
            // 显示传送门
            EventManager.dispatchEvent(EventType.SHOW_WARP_GATE);
        }
    }

    /**
     * 设置现存的物品、NPC数量
     */
    public setExistentNum(existentNum: number) {
        this.existentNum = existentNum;
    }

    /**
     * 获取现存的物品、NPC数量
     */
    public getExistentNum(): number {
        return this.existentNum;
    }
}